home *** CD-ROM | disk | FTP | other *** search
-
- /* Eratosthenes Sieve Prime Number Program in C, Byte January 1983.
- * The code has been corrected to produce primes correctly.
- */
- #include <stdio.h>
-
- #define TRUE 1
- #define FALSE 0
- #define NITER 150
- #define SIZE 8190
-
- char flags[SIZE+1]={0};
-
-
- main ()
- {
- register int i,k;
- int iter, count;
-
- printf ("%d iterations: ", NITER);
-
- for( iter = 1; iter <= NITER; iter++ ) /* Do sieve 150 times */
- {
- count = 0;
- for( i = 0; i <= SIZE; i++) /* set all flags true */
- flags[i] = TRUE;
-
- for( i = 2; i <= SIZE; i++ )
- {
- if ( flags[i] ) /* found a prime */
- {
- for ( k = i + i; k <= SIZE; k += i )
- flags[k] = FALSE; /* Cancel its multiples */
- count++;
- }
- }
- }
-
- printf ("%d primes\n", count);
-
- exit(0);
-
- }